home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / cat / confvars.d < prev    next >
Text File  |  1997-10-26  |  5KB  |  147 lines

  1. DEFINITION MODULE ConfVars;
  2.  
  3. (* Dieses Modul verwaltet Konfigurationsvariablen innerhalb einer Liste.
  4.  * Fr jede Variable wird ein Eintrag angelegt, in dem der Name, der Typ
  5.  * und der Wert festgehalten wird.
  6.  * Der Zugriff ist jederzeit ber die Funktionen dieses Moduls m”glich.
  7.  * Beim Schreiben einer Variable wird der alte Inhalt ersetzt. Eine Typwandlung
  8.  * einer Variablen ist nicht m”glich!
  9.  *)
  10.  
  11. FROM GrafBase    IMPORT Rectangle;
  12. FROM Lists       IMPORT List;
  13. FROM mtTextfiles IMPORT TEXTFILE;
  14.  
  15. (*------------- Variablen lesen ohne Default-Wert -------------------*)
  16.  
  17. PROCEDURE GetConfigString (REF name : ARRAY OF CHAR; VAR val : ARRAY OF CHAR) : BOOLEAN;
  18. (* Liest eine String-Variable. Liefert bei TRUE den Wert in val zurck 
  19.  *)
  20.  
  21. PROCEDURE GetConfigInt (REF name : ARRAY OF CHAR; VAR val : INTEGER): BOOLEAN;
  22. (* Liest eine Integer-Variable. Liefert bei TRUE den Wert in val zurck 
  23.  *)
  24.  
  25. PROCEDURE GetConfigLongInt (REF name : ARRAY OF CHAR; VAR val : LONGINT): BOOLEAN;
  26. (* Liest eine LongInteger-Variable. Liefert bei TRUE den Wert in val zurck 
  27.  *)
  28.  
  29. PROCEDURE GetConfigBool (REF name : ARRAY OF CHAR; VAR val : BOOLEAN): BOOLEAN;
  30. (* Liest eine Bool'sche Variable. Liefert bei TRUE den Wert in val zurck 
  31.  *)
  32.  
  33. PROCEDURE GetConfigRect (REF name : ARRAY OF CHAR; VAR val : Rectangle): BOOLEAN;
  34. (* Liest eine Rechteck-Variable. Liefert bei TRUE den Wert in val zurck 
  35.  *)
  36.  
  37. (*------------- Variablen lesen mit Default-Wert -------------------*)
  38.  
  39. PROCEDURE GetConfDefStr (REF name : ARRAY OF CHAR; VAR val : ARRAY OF CHAR;
  40.                            REF default : ARRAY OF CHAR);
  41. (* Liest eine String-Variable. Wenn die Variable nicht gefunden wird,
  42.  * dann wird der Default-Wert zurckgegeben.
  43.  *)
  44.  
  45. PROCEDURE GetConfDefInt (REF name : ARRAY OF CHAR; VAR val : INTEGER;
  46.                          default : INTEGER);
  47. (* Liest eine Integer-Variable. Wenn die Variable nicht gefunden wird,
  48.  * dann wird der Default-Wert zurckgegeben.
  49.  *)
  50.  
  51. PROCEDURE GetConfDefLongInt (REF name : ARRAY OF CHAR; VAR val : LONGINT;
  52.                              default : LONGINT);
  53. (* Liest eine Integer-Variable. Wenn die Variable nicht gefunden wird,
  54.  * dann wird der Default-Wert zurckgegeben.
  55.  *)
  56.  
  57. PROCEDURE GetConfDefBool (REF name : ARRAY OF CHAR; VAR val : BOOLEAN;
  58.                           default : BOOLEAN);
  59. (* Liest eine Bool'sche Variable. Wenn die Variable nicht gefunden wird,
  60.  * dann wird der Default-Wert zurckgegeben.
  61.  *)
  62.  
  63. PROCEDURE GetConfDefRect (REF name : ARRAY OF CHAR; VAR val : Rectangle;
  64.                           default : Rectangle);
  65. (* Liest eine Rechteck-Variable. Wenn die Variable nicht gefunden wird,
  66.  * dann wird der Default-Wert zurckgegeben.
  67.  *)
  68.  
  69. (*------------- Variablen schreiben -------------------*)
  70.  
  71. PROCEDURE SetConfigString (REF name : ARRAY OF CHAR; REF val : ARRAY OF CHAR) : BOOLEAN;
  72. (* Schreibt eine String-Variable. Bei TRUE konnte die Variable angelegt werden.
  73.  *)
  74.  
  75. PROCEDURE SetConfigInt (REF name : ARRAY OF CHAR; val : INTEGER): BOOLEAN;
  76. (* Schreibt eine Integer-Variable. Bei TRUE konnte die Variable angelegt werden.
  77.  *)
  78.  
  79. PROCEDURE SetConfigLongInt (REF name : ARRAY OF CHAR; val : LONGINT): BOOLEAN;
  80. (* Schreibt eine Integer-Variable. Bei TRUE konnte die Variable angelegt werden.
  81.  *)
  82.  
  83. PROCEDURE SetConfigBool (REF name : ARRAY OF CHAR; val : BOOLEAN): BOOLEAN;
  84. (* Schreibt eine Bool'sche Variable. Bei TRUE konnte die Variable angelegt werden.
  85.  *)
  86.  
  87. PROCEDURE SetConfigRect (REF name : ARRAY OF CHAR; val : Rectangle ): BOOLEAN;
  88. (* Schreibt eine Rechteck-Variable. Bei TRUE konnte die Variable angelegt werden.
  89.  *)
  90.  
  91. (*------------- Variable l”schen -------------------*)
  92.  
  93. PROCEDURE DeleteConfigVar (REF name : ARRAY OF CHAR);
  94. (* L”scht die Config-Variable name, falls vorhanden, 
  95.  * und dealloziert s„mtlichen ben”tigten Speicher
  96.  *)
  97.  
  98. PROCEDURE DeleteAllVars ();
  99. (* L”scht alle Variablen der aktuellen Variablenliste
  100.  *)
  101.  
  102. PROCEDURE CloseConfig ();
  103. (* Wird aufgerufen, wenn das Programm beendet wird.
  104.  * Dadurch wird ein eventuell vorhandenes Request-File
  105.  * geschlossen
  106.  *)
  107.  
  108. (*------------- File I/O -------------------*)
  109.  
  110. PROCEDURE ReadConfigFile (REF filename : ARRAY OF CHAR) : BOOLEAN;
  111. (* Liest ein Config-File ein. Danach stehen alle Variablen aus dem File
  112.  * in der internen Liste, falls das Lesen erfolgreich war.
  113.  *)
  114.  
  115. TYPE infoProc = PROCEDURE (REF (* info *) TEXTFILE);
  116.  
  117. PROCEDURE emptyInf( REF info: TEXTFILE);
  118. (* Leere Infoproc, gibt nichts aus *)
  119.  
  120. PROCEDURE WriteConfigFile (REF filename : ARRAY OF CHAR; info: infoProc) : BOOLEAN;
  121. (* Schreibt alle Config-Variablen in eine Datei. Diese Datei wird 
  122.  * dabei angelegt.
  123.  * šber die infoProc k”nnen am Anfang der Datei noch zus„tzliche
  124.  * Informationen abgespeichert werden. Dazu mssen die Ausgabeprozeduren von
  125.  * mtTextfiles benutzt werden.
  126.  *)
  127.  
  128.  
  129. (*------------- Modulkonfiguration ---------------*)
  130.  
  131. PROCEDURE ConfigConfigModule (useTmpVars : BOOLEAN);
  132. (* Konfiguriert das Modul um, welche Variablenliste benutzt
  133.  * wird. Default sind die normalen Variablen.
  134.  *)
  135.  
  136. PROCEDURE SetConfigVarList (l : List);
  137. (* Konfiguriert das Modul um, welche Variablenliste benutzt
  138.  * wird. 
  139.  *)
  140.  
  141. PROCEDURE ResetConfigVarList();
  142. (* Setzt die interne Variablenliste wieder auf die 
  143.  * normalen Configvariablen zurck. 
  144.  *)
  145.  
  146. END ConfVars.
  147.